sgdk
|
00001 00011 #ifndef _TILE_CACHE_H_ 00012 #define _TILE_CACHE_H_ 00013 00014 00015 #include "vdp_tile.h" 00016 00017 00022 typedef enum 00023 { 00024 NO_UPLOAD, 00025 UPLOAD_VINT, 00026 UPLOAD_NOW 00027 } TCUpload; 00028 00035 typedef struct 00036 { 00037 TileSet *tileset; 00038 u16 index; 00039 } TCBloc; 00040 00047 typedef struct 00048 { 00049 u16 startIndex; 00050 u16 limit; 00051 u16 current; 00052 u16 nextFixed; 00053 u16 nextFlush; 00054 u16 numBloc; 00055 TCBloc *blocs; 00056 } TileCache; 00057 00058 00065 void TC_init(); 00072 void TC_end(); 00073 00087 void TC_createCache(TileCache *cache, u16 startIndex, u16 size); 00103 void TC_createCacheEx(TileCache *cache, u16 startIndex, u16 size, u16 numBloc); 00113 void TC_releaseCache(TileCache *cache); 00121 void TC_clearCache(TileCache *cache); 00132 void TC_flushCache(TileCache *cache); 00133 00155 s16 TC_alloc(TileCache *cache, TileSet *tileset, TCUpload upload); 00170 s16 TC_reAlloc(TileCache *cache, TileSet *tileset); 00171 00183 void TC_free(TileCache *cache, TileSet *tileset); 00184 00198 s16 TC_getTileIndex(TileCache *cache, TileSet *tileset); 00199 00209 void TC_uploadAtVBlank(TileSet *tileset, u16 index); 00210 00211 00212 #endif // _TILE_CACHE_H_